//
// Created by NASA on 2024-5-18
// 高精度计算--加法
// OJ:https://www.luogu.com.cn/problem/P1601 pass
// https://oj.youdao.com/problem/351?from=problems pass
// 有点搞复杂了 还能简化

/*
123+333=456  无进位
123+99=222 有进位 总长度没增加
99+99 = 198 有进位 总长度增加了
99+9999=10098
 */
#include <iostream>

using namespace std;


string addTwoString(string x, string y)
{
    string s;
    int jw;
    bool zj = false;
    while (x.size() != y.size())
    {
        if (x.size() > y.size())
        {
            y = "0" + y;
        } else
        {
            x = "0" + x;
        }
    }
    bool l[x.size()] = {0};
    for (int i = 0; i < x.size(); ++i)
    {
        s += "0";
    }
    for (int i = x.size() - 1; i >= 0; --i)
    {
        jw = (x[i] - '0') + (y[i] - '0');
        if (jw < 10)
        {
            l[i] = 0;
            s[i] = ((x[i] - '0') + (y[i] - '0')) + '0';
        } else if (i > 0)
        {
            l[i] = 1;
            s[i] = jw % 10 + '0';
        } else
        {
            zj = true;
            s[i] = jw % 10 + '0';
        }
    }
    for (int i = x.size() - 1; i > 0; --i)
    {
        if (l[i])
        {
            if (s[i - 1] == '9')
            {
                l[i - 1] = 1;
                s[i - 1] = '0';

            } else
            {
                s[i - 1]++;
            }

        }
    }
    if (zj || s[0]=='0')
    {
        if(!(x=="0" && y=="0"))
        {
            s = "1" + s;
        }
    }
    return s;
}

int main()
{
    string a, b;
    a = "123", b = "333"; // 456
    a = "123", b = "99";  // 222
    a = "99", b = "99"; //198
    a = "99", b = "9999";//10098
    cin>>a>>b;
    cout << addTwoString(a, b);
    return 0;
}

